home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 551-575 / disk_570 / gadtoolsbox / source / source.lha / WindowSpecial.c < prev    next >
C/C++ Source or Header  |  1991-11-04  |  18KB  |  502 lines

  1. /*-- AutoRev header do NOT edit!
  2. *
  3. *   Program         :   WindowSpecial.c
  4. *   Copyright       :   © Copyright 1991 Jaba Development
  5. *   Author          :   Jan van den Baard
  6. *   Creation Date   :   29-Sep-91
  7. *   Current version :   1.00
  8. *   Translator      :   DICE v2.6
  9. *
  10. *   REVISION HISTORY
  11. *
  12. *   Date          Version         Comment
  13. *   ---------     -------         ------------------------------------------
  14. *   29-Sep-91     1.00            Window Special requester.
  15. *
  16. *-- REV_END --*/
  17.  
  18. #include "GTEd.h"
  19. #include "Protos.h"
  20.  
  21. /*
  22.  * --- External referenced data.
  23.  */
  24. extern ULONG             Class;
  25. extern UWORD             Code;
  26. extern struct TextAttr   Topaz80;
  27. extern APTR              MainVisualInfo;
  28. extern struct Screen    *MainScreen;
  29. extern struct Window    *MainWindow;
  30. extern struct Gadget    *Object;
  31. extern BOOL              Saved;
  32. extern UBYTE             MainWindowTitle[80], MainScreenTitle[80];
  33.  
  34. /*
  35.  * --- Gadget ID
  36.  */
  37. #define GD_INNERW       0
  38. #define GD_INNERH       1
  39. #define GD_ZOOM         2
  40. #define GD_MQUEUE       3
  41. #define GD_KQUEUE       4
  42. #define GD_ADJUST       5
  43. #define GD_MENTER       6
  44. #define GD_KENTER       7
  45. #define GD_ZOOML        8
  46. #define GD_ZOOMT        9
  47. #define GD_ZOOMW        10
  48. #define GD_ZOOMH        11
  49. #define GD_WENTER       12
  50. #define GD_HENTER       13
  51. #define GD_WDTITLE      14
  52. #define GD_SCTITLE      15
  53. #define GD_OK           16
  54. #define GD_CANCEL       17
  55.  
  56. /*
  57.  * --- Module data.
  58.  */
  59. struct Window           *ws_Wnd   = NULL;
  60. struct Gadget           *ws_GList = NULL;
  61. struct Gadget           *ws_Gadgets[ 16 ];
  62. WORD                     ws_Zoom[4];
  63.  
  64. BOOL                     ws_InnerW = FALSE, ws_InnerH = FALSE;
  65. BOOL                     ws_ZoomF = FALSE, ws_MQueue = FALSE;
  66. BOOL                     ws_RQueue = FALSE, ws_Adjust = FALSE;
  67.  
  68. WORD                     ws_ZLeft = 0, ws_ZTop = 0, ws_ZWidth = 200, ws_ZHeight = 0;
  69. WORD                     ws_IWidth = 0, ws_IHeight = 0;
  70. WORD                     ws_MQue = 1, ws_RQue = 1;
  71.  
  72. struct TagItem           ws_nwTags[] = {
  73.     WA_Left,                0l,
  74.     WA_Top,                 0l,
  75.     WA_Width,               0l,
  76.     WA_Height,              0l,
  77.     WA_IDCMP,               IDCMP_CLOSEWINDOW | BUTTONIDCMP | CHECKBOXIDCMP | INTEGERIDCMP | IDCMP_VANILLAKEY | IDCMP_REFRESHWINDOW,
  78.     WA_Flags,               WFLG_DRAGBAR | WFLG_DEPTHGADGET| WFLG_CLOSEGADGET | WFLG_ACTIVATE | WFLG_RMBTRAP | WFLG_SMART_REFRESH,
  79.     WA_Gadgets,             0l,
  80.     WA_Title,               "Edit Special Window Tags:",
  81.     WA_AutoAdjust,          TRUE,
  82.     WA_Zoom,                (Tag)ws_Zoom,
  83.     TAG_DONE };
  84.  
  85. /*
  86.  * --- Display the WindowSpecial requester.
  87.  */
  88. long WindowSpecial( void )
  89. {
  90.     struct Gadget       *g;
  91.     struct NewGadget     ng;
  92.     BOOL                 running = TRUE, OK = FALSE;
  93.     WORD                 l, t, w, h, btop, bleft;
  94.     BOOL                 InnerW, InnerH, ZoomF, MQueue, RQueue, Adjust;
  95.     WORD                 MQue, RQue, Zl, Zt, Zw, Zh;
  96.  
  97.     InnerW = ws_InnerW;
  98.     InnerH = ws_InnerH;
  99.     ZoomF  = ws_ZoomF;
  100.     MQueue = ws_MQueue;
  101.     RQueue = ws_RQueue;
  102.     Adjust = ws_Adjust;
  103.     MQue   = ws_MQue;
  104.     RQue   = ws_RQue;
  105.     Zl     = ws_ZLeft;
  106.     Zt     = ws_ZTop;
  107.     Zw     = ws_ZWidth;
  108.     Zh     = ws_ZHeight;
  109.  
  110.     btop  = MainScreen->WBorTop + MainScreen->RastPort.TxHeight;
  111.     bleft = MainScreen->WBorLeft;
  112.  
  113.     w = bleft + MainScreen->WBorRight  + 300;
  114.     h = btop  + MainScreen->WBorBottom + 169;
  115.     l = (( MainScreen->Width  >> 1 ) - ( w >> 1 ));
  116.     t = (( MainScreen->Height >> 1 ) - ( h >> 1 ));
  117.  
  118.     ws_Zoom[0] = 0;
  119.     ws_Zoom[1] = btop;
  120.     ws_Zoom[2] = 200;
  121.     ws_Zoom[3] = btop;
  122.  
  123.     ws_nwTags[0].ti_Data = l;
  124.     ws_nwTags[1].ti_Data = t;
  125.     ws_nwTags[2].ti_Data = w;
  126.     ws_nwTags[3].ti_Data = h;
  127.  
  128.     ws_nwTags[10].ti_Data = (Tag)MainScreen;
  129.  
  130.     if (( MainScreen->Flags & CUSTOMSCREEN) == CUSTOMSCREEN )
  131.         ws_nwTags[10].ti_Tag  = WA_CustomScreen;
  132.     else if (( MainScreen->Flags & PUBLICSCREEN ) == PUBLICSCREEN )
  133.         ws_nwTags[10].ti_Tag  = WA_PubScreen;
  134.     else
  135.         ws_nwTags[10].ti_Tag  = TAG_DONE;
  136.  
  137.     ws_IWidth  = MainWindow->Width - MainWindow->BorderLeft - MainWindow->BorderRight;
  138.     ws_IHeight = MainWindow->Height - MainWindow->BorderTop - MainWindow->BorderBottom;
  139.  
  140.     Zh = MainWindow->BorderTop;
  141.  
  142.     if ( g = CreateContext( &ws_GList )) {
  143.  
  144.         ng.ng_LeftEdge      =   bleft + 8;
  145.         ng.ng_TopEdge       =   btop + 4;
  146.         ng.ng_GadgetText    =   "Inner_Width";
  147.         ng.ng_TextAttr      =   &Topaz80;
  148.         ng.ng_GadgetID      =   GD_INNERW;
  149.         ng.ng_Flags         =   PLACETEXT_RIGHT;
  150.         ng.ng_VisualInfo    =   MainVisualInfo;
  151.  
  152.         g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, (Tag)InnerW, GT_Underscore, (Tag)'_', TAG_DONE );
  153.  
  154.         ws_Gadgets[ GD_INNERW ] = g;
  155.  
  156.         ng.ng_TopEdge       =   btop + 18;
  157.         ng.ng_GadgetText    =   "Inner_Height";
  158.         ng.ng_GadgetID      =   GD_INNERH;
  159.  
  160.         g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, (Tag)InnerH, GT_Underscore, (Tag)'_', TAG_DONE );
  161.  
  162.         ws_Gadgets[ GD_INNERH ] = g;
  163.  
  164.         ng.ng_TopEdge       =   btop + 32;
  165.         ng.ng_GadgetText    =   "_MouseQueue";
  166.         ng.ng_GadgetID      =   GD_MQUEUE;
  167.  
  168.         g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, (Tag)MQueue, GT_Underscore, (Tag)'_', TAG_DONE );
  169.  
  170.         ws_Gadgets[ GD_MQUEUE ] = g;
  171.  
  172.         ng.ng_TopEdge       =   btop + 46;
  173.         ng.ng_GadgetText    =   "_RptQueue";
  174.         ng.ng_GadgetID      =   GD_KQUEUE;
  175.  
  176.         g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, (Tag)RQueue, GT_Underscore, (Tag)'_', TAG_DONE );
  177.  
  178.         ws_Gadgets[ GD_KQUEUE ] = g;
  179.  
  180.         ng.ng_TopEdge       =   btop + 60;
  181.         ng.ng_GadgetText    =   "_AutoAdjust";
  182.         ng.ng_GadgetID      =   GD_ADJUST;
  183.  
  184.         g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, (Tag)Adjust, GT_Underscore, (Tag)'_', TAG_DONE );
  185.  
  186.         ws_Gadgets[ GD_ADJUST ] = g;
  187.  
  188.         ng.ng_TopEdge       =   btop + 74;
  189.         ng.ng_GadgetText    =   "_Zoom";
  190.         ng.ng_GadgetID      =   GD_ZOOM;
  191.  
  192.         g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, (Tag)ZoomF, GT_Underscore, (Tag)'_', TAG_DONE );
  193.  
  194.         ws_Gadgets[ GD_ZOOM ] = g;
  195.  
  196.         ng.ng_LeftEdge      =   bleft + 150;
  197.         ng.ng_TopEdge       =   btop  + 3;
  198.         ng.ng_Width         =   144;
  199.         ng.ng_Height        =   12;
  200.         ng.ng_GadgetText    =   0l;
  201.         ng.ng_GadgetID      =   GD_WENTER;
  202.  
  203.         g = CreateGadget( NUMBER_KIND, g, &ng, GTNM_Number, (Tag)ws_IWidth, GTNM_Border, TRUE, TAG_DONE );
  204.  
  205.         ws_Gadgets[ GD_WENTER ] = g;
  206.  
  207.         ng.ng_TopEdge       =   btop  + 17;
  208.         ng.ng_GadgetID      =   GD_HENTER;
  209.  
  210.         g = CreateGadget( NUMBER_KIND, g, &ng, GTNM_Number, (Tag)ws_IHeight, GTNM_Border, TRUE, TAG_DONE );
  211.  
  212.         ws_Gadgets[ GD_HENTER ] = g;
  213.  
  214.         ng.ng_TopEdge       =   btop  + 31;
  215.         ng.ng_GadgetID      =   GD_MENTER;
  216.  
  217.         g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, (Tag)MQue, GTIN_MaxChars, 5l, TAG_DONE );
  218.  
  219.         SetStringGadget( g );
  220.  
  221.         ws_Gadgets[ GD_MENTER ] = g;
  222.  
  223.         ng.ng_TopEdge       =   btop  + 45;
  224.         ng.ng_GadgetID      =   GD_KENTER;
  225.  
  226.         g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, (Tag)RQue, GTIN_MaxChars, 5l, TAG_DONE );
  227.  
  228.         SetStringGadget( g );
  229.  
  230.         ws_Gadgets[ GD_KENTER ] = g;
  231.  
  232.         ng.ng_TopEdge       =   btop  + 88;
  233.         ng.ng_LeftEdge      =   bleft + 8;
  234.         ng.ng_Width         =   88;
  235.         ng.ng_GadgetID      =   GD_ZOOML;
  236.         ng.ng_GadgetText    =   "Left";
  237.         ng.ng_Flags         =   PLACETEXT_RIGHT;
  238.  
  239.         g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, (Tag)Zl, GTIN_MaxChars, 5l, TAG_DONE );
  240.  
  241.         SetStringGadget( g );
  242.  
  243.         ws_Gadgets[ GD_ZOOML ] = g;
  244.  
  245.         ng.ng_LeftEdge      =   bleft + 150;
  246.         ng.ng_GadgetID      =   GD_ZOOMT;
  247.         ng.ng_GadgetText    =   "Top";
  248.  
  249.         g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, (Tag)Zt, GTIN_MaxChars, 5l, TAG_DONE );
  250.  
  251.         SetStringGadget( g );
  252.  
  253.         ws_Gadgets[ GD_ZOOMT ] = g;
  254.  
  255.         ng.ng_LeftEdge      =   bleft + 8;
  256.         ng.ng_TopEdge       =   btop + 104;
  257.         ng.ng_GadgetID      =   GD_ZOOMW;
  258.         ng.ng_GadgetText    =   "Width";
  259.  
  260.         g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, (Tag)Zw, GTIN_MaxChars, 5l, TAG_DONE );
  261.  
  262.         SetStringGadget( g );
  263.  
  264.         ws_Gadgets[ GD_ZOOMW ] = g;
  265.  
  266.         ng.ng_LeftEdge      =   bleft + 150;
  267.         ng.ng_GadgetID      =   GD_ZOOMH;
  268.         ng.ng_GadgetText    =   "Height";
  269.  
  270.         g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, (Tag)Zh, GTIN_MaxChars, 5l, TAG_DONE );
  271.  
  272.         SetStringGadget( g );
  273.  
  274.         ws_Gadgets[ GD_ZOOMH ] = g;
  275.  
  276.         ng.ng_TopEdge       =   btop + 120;
  277.         ng.ng_LeftEdge      =   bleft + 150;
  278.         ng.ng_Width         =   144;
  279.         ng.ng_GadgetText    =   "Window_Title";
  280.         ng.ng_Flags         =   PLACETEXT_LEFT;
  281.  
  282.         g = CreateGadget( STRING_KIND, g, &ng, GTST_String, MainWindowTitle, GTST_MaxChars, 80l, GT_Underscore, '_', TAG_DONE );
  283.  
  284.         SetStringGadget( g );
  285.  
  286.         ws_Gadgets[ GD_WDTITLE ] = g;
  287.  
  288.         ng.ng_TopEdge       =   btop + 136;
  289.         ng.ng_GadgetText    =   "_ScreenTitle";
  290.         ng.ng_GadgetID      =   GD_SCTITLE;
  291.  
  292.         g = CreateGadget( STRING_KIND, g, &ng, GTST_String, MainScreenTitle, GTST_MaxChars, 80l, GT_Underscore, '_', TAG_DONE );
  293.  
  294.         SetStringGadget( g );
  295.  
  296.         ws_Gadgets[ GD_SCTITLE ] = g;
  297.  
  298.         ng.ng_TopEdge       =   btop + 152;
  299.         ng.ng_LeftEdge      =   bleft + 8;
  300.         ng.ng_Width         =   60;
  301.         ng.ng_Height        =   13;
  302.         ng.ng_GadgetText    =   "_OK";
  303.         ng.ng_GadgetID      =   GD_OK;
  304.         ng.ng_Flags         =   PLACETEXT_IN;
  305.  
  306.         g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, (Tag)'_', TAG_DONE );
  307.  
  308.         ng.ng_LeftEdge      =   bleft + 232;
  309.         ng.ng_GadgetText    =   "_CANCEL";
  310.         ng.ng_GadgetID      =   GD_CANCEL;
  311.  
  312.         g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, (Tag)'_', TAG_DONE );
  313.  
  314.         if ( g ) {
  315.  
  316.             ws_nwTags[6].ti_Data = (Tag)ws_GList;
  317.  
  318.             if ( ws_Wnd = OpenWindowTagList( NULL, ws_nwTags )) {
  319.  
  320.                 ws_Zoom[0] = l;
  321.                 ws_Zoom[1] = t;
  322.                 ws_Zoom[2] = w;
  323.                 ws_Zoom[3] = h;
  324.  
  325.                 GT_RefreshWindow( ws_Wnd, NULL );
  326.  
  327.                 EnableGadget( ws_Wnd, ws_Gadgets, GD_ZOOML, ZoomF );
  328.                 EnableGadget( ws_Wnd, ws_Gadgets, GD_ZOOMT, ZoomF );
  329.                 EnableGadget( ws_Wnd, ws_Gadgets, GD_ZOOMW, ZoomF );
  330.                 EnableGadget( ws_Wnd, ws_Gadgets, GD_ZOOMH, ZoomF );
  331.                 EnableGadget( ws_Wnd, ws_Gadgets, GD_MENTER, MQueue );
  332.                 EnableGadget( ws_Wnd, ws_Gadgets, GD_KENTER, RQueue );
  333.  
  334.                 do {
  335.                     WaitPort( ws_Wnd->UserPort );
  336.  
  337.                     while ( ReadIMsg( ws_Wnd )) {
  338.  
  339.                         switch ( Class ) {
  340.  
  341.                             case    IDCMP_REFRESHWINDOW:
  342.                                 GT_BeginRefresh( ws_Wnd );
  343.                                 GT_EndRefresh( ws_Wnd, TRUE );
  344.                                 break;
  345.  
  346.                             case    IDCMP_CLOSEWINDOW:
  347.                                 running = FALSE;
  348.                                 break;
  349.  
  350.                             case    IDCMP_VANILLAKEY:
  351.                                 switch ( Code ) {
  352.  
  353.                                     case    'w':
  354.                                         FlipFlop( ws_Wnd, ws_Gadgets, GD_INNERW, &InnerW );
  355.                                         break;
  356.  
  357.                                     case    'h':
  358.                                         FlipFlop( ws_Wnd, ws_Gadgets, GD_INNERH, &InnerH );
  359.                                         break;
  360.  
  361.                                     case    'm':
  362.                                         FlipFlop( ws_Wnd, ws_Gadgets, GD_MQUEUE, &MQueue );
  363.                                         goto Mouse;
  364.  
  365.                                     case    'r':
  366.                                         FlipFlop( ws_Wnd, ws_Gadgets, GD_KQUEUE, &RQueue );
  367.                                         goto Repeat;
  368.  
  369.                                     case    'a':
  370.                                         FlipFlop( ws_Wnd, ws_Gadgets, GD_ADJUST, &Adjust );
  371.                                         break;
  372.  
  373.                                     case    'z':
  374.                                         FlipFlop( ws_Wnd, ws_Gadgets, GD_ZOOM, &ZoomF );
  375.                                         goto zoom;
  376.                                         break;
  377.  
  378.                                     case    't':
  379.                                         ActivateGadget( ws_Gadgets[ GD_WDTITLE ], ws_Wnd, 0l );
  380.                                         break;
  381.  
  382.                                     case    's':
  383.                                         ActivateGadget( ws_Gadgets[ GD_SCTITLE ], ws_Wnd, 0l );
  384.                                         break;
  385.  
  386.                                     case    'o':
  387.                                         goto Ok;
  388.  
  389.                                     case    'c':
  390.                                         goto Cancel;
  391.                                 }
  392.                                 break;
  393.  
  394.                             case    IDCMP_GADGETUP:
  395.                                 switch ( Object->GadgetID ) {
  396.  
  397.                                     case    GD_INNERW:
  398.                                         FlipFlop( 0l, 0l, 0l, &InnerW );
  399.                                         break;
  400.  
  401.                                     case    GD_INNERH:
  402.                                         FlipFlop( 0l, 0l, 0l, &InnerH );
  403.                                         break;
  404.  
  405.                                     case    GD_ZOOM:
  406.                                         FlipFlop( 0l, 0l, 0l, &ZoomF );
  407.                                         zoom:
  408.                                         EnableGadget( ws_Wnd, ws_Gadgets, GD_ZOOML, ZoomF );
  409.                                         EnableGadget( ws_Wnd, ws_Gadgets, GD_ZOOMT, ZoomF );
  410.                                         EnableGadget( ws_Wnd, ws_Gadgets, GD_ZOOMW, ZoomF );
  411.                                         EnableGadget( ws_Wnd, ws_Gadgets, GD_ZOOMH, ZoomF );
  412.                                         if ( ZoomF )
  413.                                             ActivateGadget( ws_Gadgets[ GD_ZOOML ], ws_Wnd, 0l );
  414.                                         break;
  415.  
  416.                                     case    GD_MQUEUE:
  417.                                         FlipFlop( 0l, 0l, 0l, &MQueue );
  418.                                         Mouse:
  419.                                         EnableGadget( ws_Wnd, ws_Gadgets, GD_MENTER, MQueue );
  420.                                         if ( MQueue )
  421.                                             ActivateGadget( ws_Gadgets[ GD_MENTER ], ws_Wnd, 0l );
  422.                                         break;
  423.  
  424.                                     case    GD_KQUEUE:
  425.                                         FlipFlop( 0l, 0l, 0l, &RQueue );
  426.                                         Repeat:
  427.                                         EnableGadget( ws_Wnd, ws_Gadgets, GD_KENTER, RQueue );
  428.                                         if ( RQueue )
  429.                                             ActivateGadget( ws_Gadgets[ GD_KENTER ], ws_Wnd, 0l );
  430.                                         break;
  431.  
  432.                                     case    GD_ADJUST:
  433.                                         FlipFlop( 0l, 0l, 0l, &Adjust );
  434.                                         break;
  435.  
  436.                                     case    GD_OK:
  437.                                         Ok:
  438.                                         OK = TRUE;
  439.                                         running = FALSE;
  440.                                         break;
  441.  
  442.                                     case    GD_CANCEL:
  443.                                         Cancel:
  444.                                         running = FALSE;
  445.                                         break;
  446.  
  447.                                     case    GD_MENTER:
  448.                                         MQue = (( struct StringInfo * )ws_Gadgets[ GD_MENTER ]->SpecialInfo )->LongInt;
  449.  
  450.                                         if ( MQue < 1 ) {
  451.                                             MQue = 1;
  452.                                             DisplayBeep( MainScreen );
  453.                                             GT_SetGadgetAttrs( ws_Gadgets[ GD_MENTER ], ws_Wnd, 0l, GTIN_Number, (Tag)MQue, TAG_DONE );
  454.                                         }
  455.                                         break;
  456.  
  457.                                     case    GD_KENTER:
  458.                                         RQue = (( struct StringInfo * )ws_Gadgets[ GD_KENTER ]->SpecialInfo )->LongInt;
  459.  
  460.                                         if ( RQue < 1 ) {
  461.                                             RQue = 1;
  462.                                             DisplayBeep( MainScreen );
  463.                                             GT_SetGadgetAttrs( ws_Gadgets[ GD_KENTER ], ws_Wnd, 0l, GTIN_Number, (Tag)RQue, TAG_DONE );
  464.                                         }
  465.                                         break;
  466.                                 }
  467.                                 break;
  468.                         }
  469.                     }
  470.                 } while ( running );
  471.             }
  472.         }
  473.     }
  474.  
  475.     if ( ws_Wnd )           CloseWindow( ws_Wnd );
  476.     if ( ws_GList )         FreeGadgets( ws_GList );
  477.  
  478.     ws_Wnd   = 0l;
  479.     ws_GList = 0l;
  480.  
  481.     if ( OK ) {
  482.         ws_InnerW  = InnerW;
  483.         ws_InnerH  = InnerH;
  484.         ws_ZoomF   = ZoomF;
  485.         ws_MQueue  = MQueue;
  486.         ws_RQueue  = RQueue;
  487.         ws_Adjust  = Adjust;
  488.         ws_MQue    = MQue;
  489.         ws_RQue    = RQue;
  490.         ws_ZLeft   = Zl;
  491.         ws_ZTop    = Zt;
  492.         ws_ZWidth  = Zw;
  493.         ws_ZHeight = Zh;
  494.         strcpy( MainWindowTitle, (( struct StringInfo * )ws_Gadgets[ GD_WDTITLE ]->SpecialInfo )->Buffer );
  495.         strcpy( MainScreenTitle, (( struct StringInfo * )ws_Gadgets[ GD_SCTITLE ]->SpecialInfo )->Buffer );
  496.         SetWindowTitles( MainWindow, MainWindowTitle, MainScreenTitle );
  497.         Saved = FALSE;
  498.     }
  499.  
  500.     ClearMsgPort( MainWindow->UserPort );
  501. }
  502.